{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "53b66870-6231-497b-a477-68bb472576ff",
   "metadata": {
    "trusted": true
   },
   "outputs": [],
   "source": [
    "!pip install . -e"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5d23c9d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "%cd shap_e/examples\n",
    "!pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "31fcd6d0-5b45-474d-9a42-fcd0925ad317",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-02-25T03:55:59.926765Z",
     "iopub.status.busy": "2025-02-25T03:55:59.926375Z",
     "iopub.status.idle": "2025-02-25T03:56:00.390148Z",
     "shell.execute_reply": "2025-02-25T03:56:00.389191Z",
     "shell.execute_reply.started": "2025-02-25T03:55:59.926735Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "\n",
    "from shap_e.diffusion.sample import sample_latents\n",
    "from shap_e.diffusion.gaussian_diffusion import diffusion_from_config\n",
    "from shap_e.models.download import load_model, load_config\n",
    "from shap_e.util.notebooks import create_pan_cameras, decode_latent_images, gif_widget\n",
    "from shap_e.util.image_util import load_image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "8eed3a76",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-02-25T03:56:04.035641Z",
     "iopub.status.busy": "2025-02-25T03:56:04.035121Z",
     "iopub.status.idle": "2025-02-25T03:56:04.090481Z",
     "shell.execute_reply": "2025-02-25T03:56:04.089341Z",
     "shell.execute_reply.started": "2025-02-25T03:56:04.035605Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2d922637",
   "metadata": {
    "trusted": true
   },
   "outputs": [],
   "source": [
    "xm = load_model('transmitter', device=device)\n",
    "model = load_model('image300M', device=device)\n",
    "diffusion = diffusion_from_config(load_config('diffusion'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "53d329d0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-02-25T04:00:23.449355Z",
     "iopub.status.busy": "2025-02-25T04:00:23.448898Z",
     "iopub.status.idle": "2025-02-25T04:03:19.376553Z",
     "shell.execute_reply": "2025-02-25T04:03:19.375662Z",
     "shell.execute_reply.started": "2025-02-25T04:00:23.449328Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7cb846a2cc6141aea91dbc6c5dd5b4b0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/64 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "batch_size = 4\n",
    "guidance_scale = 3.0\n",
    "\n",
    "# To get the best result, you should remove the background and show only the object of interest to the model.\n",
    "image = load_image(\"example_data/corgi.png\")\n",
    "\n",
    "latents = sample_latents(\n",
    "    batch_size=batch_size,\n",
    "    model=model,\n",
    "    diffusion=diffusion,\n",
    "    guidance_scale=guidance_scale,\n",
    "    model_kwargs=dict(images=[image] * batch_size),\n",
    "    progress=True,\n",
    "    clip_denoised=True,\n",
    "    use_fp16=True,\n",
    "    use_karras=True,\n",
    "    karras_steps=64,\n",
    "    sigma_min=1e-3,\n",
    "    sigma_max=160,\n",
    "    s_churn=0,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "50ebd048-9b0e-4038-9458-882370da3f25",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-02-25T04:07:55.550024Z",
     "iopub.status.busy": "2025-02-25T04:07:55.549683Z",
     "iopub.status.idle": "2025-02-25T04:07:55.559809Z",
     "shell.execute_reply": "2025-02-25T04:07:55.559045Z",
     "shell.execute_reply.started": "2025-02-25T04:07:55.550000Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=256x256>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "633da2ec",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-02-25T04:04:03.795498Z",
     "iopub.status.busy": "2025-02-25T04:04:03.794989Z",
     "iopub.status.idle": "2025-02-25T04:04:21.427099Z",
     "shell.execute_reply": "2025-02-25T04:04:21.426138Z",
     "shell.execute_reply.started": "2025-02-25T04:04:03.795470Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ded3ed764d1842d280a583c5b27b317b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HTML(value='<img src=\"…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e24a03db60034afe8e91c55a025659f9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HTML(value='<img src=\"…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "604bed1a18d1461fbb363178a382d284",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HTML(value='<img src=\"…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3e83f8e3cab94852b934c1f9804bc423",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HTML(value='<img src=\"…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "render_mode = 'nerf' # you can change this to 'stf' for mesh rendering\n",
    "size = 64 # this is the size of the renders; higher values take longer to render.\n",
    "\n",
    "cameras = create_pan_cameras(size, device)\n",
    "for i, latent in enumerate(latents):\n",
    "    images = decode_latent_images(xm, latent, cameras, rendering_mode=render_mode)\n",
    "    display(gif_widget(images))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a185ffcd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Example of saving the latents as meshes.\n",
    "from shap_e.util.notebooks import decode_latent_mesh\n",
    "\n",
    "for i, latent in enumerate(latents):\n",
    "    with open(f'example_mesh_{i}.ply', 'wb') as f:\n",
    "        decode_latent_mesh(xm, latent).tri_mesh().write_ply(f)"
   ]
  }
 ],
 "metadata": {
  "kaggle": {
   "accelerator": "gpu",
   "dataSources": [],
   "dockerImageVersionId": 30919,
   "isGpuEnabled": true,
   "isInternetEnabled": true,
   "language": "python",
   "sourceType": "notebook"
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
